Read timestamps from KML Placemarks when we can. (TimeRanges are ignored.)
authorrobertl <robertl>
Thu, 13 Dec 2007 07:45:44 +0000 (07:45 +0000)
committerrobertl <robertl>
Thu, 13 Dec 2007 07:45:44 +0000 (07:45 +0000)
kml.c

diff --git a/kml.c b/kml.c
index b5e48ab781d0fe828c2c2a39581a5686a56cf67c..6584de12575b3c068c2723bdcd538f4b19da09d1 100644 (file)
--- a/kml.c
+++ b/kml.c
@@ -144,8 +144,8 @@ kml_read(void)
 }
 #else
 
-static xg_callback     wpt_s, wpt_e;
-static xg_callback     wpt_name, wpt_desc, wpt_coord, wpt_icon, trk_coord;
+static xg_callback wpt_s, wpt_e;
+static xg_callback wpt_name, wpt_desc, wpt_coord, wpt_icon, trk_coord, wpt_time;
 
 static 
 xg_tag_mapping kml_map[] = {
@@ -153,6 +153,7 @@ xg_tag_mapping kml_map[] = {
        { wpt_e,        cb_end,         "/Placemark" },
        { wpt_name,     cb_cdata,       "/Placemark/name" },
        { wpt_desc,     cb_cdata,       "/Placemark/description" },
+       { wpt_time,     cb_cdata,       "/Placemark/TimeStamp/when" },
        { wpt_coord,    cb_cdata,       "/Placemark/Point/coordinates" },
        { wpt_icon,     cb_cdata,       "/Placemark/Style/Icon/href" },
        { trk_coord,    cb_cdata,       "/Placemark/MultiGeometry/LineString/coordinates" },
@@ -202,6 +203,11 @@ void wpt_desc(const char *args, const char **unused)
        }
 }
 
+void wpt_time(const char *args, const char **unused)
+{
+       wpt_tmp->creation_time = xml_parse_time(args, &wpt_tmp->microseconds);
+}
+
 void wpt_coord(const char *args, const char **attrv)
 {
        sscanf(args, "%lf,%lf,%lf", &wpt_tmp->longitude, &wpt_tmp->latitude, &wpt_tmp->altitude);